package Negocio;

import DTO.DTO_CompraVenta;
import DTO.DTO_ElaboracionNoVenta;
import DTO.DTO_ElaboracionVenta;
import DTO.DTO_StockProducto;
import Entities.Entity_CompraVenta;
import Entities.Entity_ElaboracionNoVenta;
import Entities.Entity_ElaboracionVenta;
import Entities.Entity_StockProducto;

public class StockProducto {
	
	private float cant;
	private int idStockProducto;
	private Producto producto;
	private float puntoReposicion;
	
	//Constructores
	public StockProducto(float cant, int idStockProducto, Producto producto,
			float puntoReposicion) {
		super();
		this.cant = cant;
		this.idStockProducto = idStockProducto;
		this.producto = producto;
		this.puntoReposicion = puntoReposicion;
	}
	
	public StockProducto() {
	}

	public StockProducto(DTO_StockProducto sP) {
		this.cant=sP.getCant();
		this.idStockProducto=sP.getIdStockProducto();
	
		if(sP.getProducto() instanceof DTO_CompraVenta)
			this.producto = new CompraVenta ((DTO_CompraVenta) sP.getProducto());
		else if (sP.getProducto() instanceof DTO_ElaboracionVenta)
			this.producto = new ElaboracionVenta ((DTO_ElaboracionVenta) sP.getProducto());
		else if (sP.getProducto() instanceof DTO_ElaboracionNoVenta)
			this.producto = new ElaboracionNoVenta ((DTO_ElaboracionNoVenta) sP.getProducto());
			
		this.puntoReposicion=sP.getPuntoReposicion();
	}
	public StockProducto(Entity_StockProducto sP) {
		this.cant=sP.getCant();
		this.idStockProducto=sP.getIdStockProducto();
	
		if(sP.getProducto() instanceof Entity_CompraVenta)
			this.producto = new CompraVenta ((Entity_CompraVenta) sP.getProducto());
		else if (sP.getProducto() instanceof Entity_ElaboracionVenta)
			this.producto = new ElaboracionVenta ((Entity_ElaboracionVenta) sP.getProducto());
		else if (sP.getProducto() instanceof Entity_ElaboracionNoVenta)
			this.producto = new ElaboracionNoVenta ((Entity_ElaboracionNoVenta) sP.getProducto());
			
		this.puntoReposicion=sP.getPuntoReposicion();
	}

	//GET & SET
	public float getCant() {
		return cant;
	}
	public void setCant(float cant) {
		this.cant = cant;
	}
	public int getIdStockProducto() {
		return idStockProducto;
	}
	public void setIdStockProducto(int idStockProducto) {
		this.idStockProducto = idStockProducto;
	}
	public Producto getProducto() {
		return producto;
	}
	public void setProducto(Producto producto) {
		this.producto = producto;
	}
	public float getPuntoReposicion() {
		return puntoReposicion;
	}
	public void setPuntoReposicion(float puntoReposicion) {
		this.puntoReposicion = puntoReposicion;
	}
	
	public DTO_StockProducto toDTO(){
		DTO_StockProducto sp = new DTO_StockProducto();
		sp.setCant(cant);
		sp.setIdStockProducto(idStockProducto);
		sp.setProducto(producto.toDTO());
		sp.setPuntoReposicion(puntoReposicion);
		return sp;
	}

	public Entity_StockProducto toEntity() {
		Entity_StockProducto sp = new Entity_StockProducto();
		sp.setCant(cant);
		sp.setIdStockProducto(idStockProducto);
		sp.setProducto(producto.toEntity());
		sp.setPuntoReposicion(puntoReposicion);
		return sp;
	}

}
